class Cuenta < ActiveRecord::Base

	belongs_to 	:usuario_cuenta
	has_many		:cuenta_trainee
	has_many		:contacto, :dependent => :destroy
	has_many		:comunicaciones, :dependent => :destroy
	belongs_to	:estado_cuenta
  has_many   :log_trainees, :dependent => :destroy
	
  validates_presence_of :razon_social,:rubro,:estado_cuenta_id

	# Verifica si hay estados de cuenta creados.
	def self.hay_estados
		if EstadoCuenta.find(:all) then 
				return true
	 	else
	  		return false
		end		
	end

	# Busca todos los contactos.
	def self.listas_contactos()
		@contactos = Contacto.find(:all)
	end

	# Busca todas las cuentas paginando el resultado.
	def self.search(search, page)
		paginate :per_page => 5, :page => page,
		         :order => 'id'
	end
	
	# Busca todas las cuentas asignadas a un usuario.
	def self.search_asignadas(search, page, user_id)
		@cuentas_ids = UsuarioCuenta.find(:all, :conditions => ['user_id = ?',user_id]).collect(&:cuenta_id)
		paginate :per_page => 3, :page => page, :order => 'id', :conditions => ['id in (?)',@cuentas_ids]
	end

	# Busca todos las cuentas asociados a un contacto
	def self.search_contactos(search, page, contacto_id)
		@cuentas_ids = Contacto.find(:all,:conditions => ['id = ?',contacto_id]).collect(&:cuenta_id)
		paginate :per_page => 5, :page => page,
		         :order => 'id', :conditions => ['id in (?) ',@cuentas_ids]
	end
	
	# Verifica si la cuenta se encuentra en estado abierto.
	def abierta?
		self.estado_cuenta.descripcion == "Abierta"
	end


end
